package com.sm.service;

import java.util.ArrayList;
import java.util.List;

import com.github.pagehelper.Page;
import com.sm.model.FirstDirectory;
import com.sm.model.VideoCourse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.sm.dao.FirstDirectoryMapper;
import com.sm.dao.VideoCourseMapper;
import com.sm.vo.FirstVideoVO;

/**
 *	查询新园梦首页的一级类别
 * @author 60915
 */
@Service
public class FirstDirectoryService {
	
	@Autowired
	private FirstDirectoryMapper firstDirectoryMapper;
	@Autowired
	private VideoCourseMapper videoCourseMapper;
	
	
	/**
	 *	查询首页的所有的一级类别
	 * @return
	 */
	public List<FirstDirectory> selectAllFirstDirectory(){
		//查询首页的所有的一级类别
		List<FirstDirectory> firstDirectorys = firstDirectoryMapper.selectAllFirstDirectory();
		return firstDirectorys;
	}
	
	/**
	 *	查询状元学堂首页的所有的一级类别。
	 * @return
	 */
	public List<FirstDirectory> selectSchoolFirst(){
		List<FirstDirectory> firstDirectorys = firstDirectoryMapper.selectSchoolFirst();
		return firstDirectorys;
	}

	/**
	 * 根据id查询一个一级类别的详情
	 */
	public FirstDirectory selectOne(Integer id){
		return firstDirectoryMapper.selectByPrimaryKey(id);
	}
	
	/**
	 *	查询状元学堂首页的没有二级类别的所有一级类别以及其下的所有的视频。
	 * @return
	 */
	public List<FirstVideoVO> selectFirstVideoNoSecond(){
		//查询所有的不包含二级类别的一级类别
		List<FirstDirectory> firstDirectorys = firstDirectoryMapper.selectFirstNoSecond();
		
		if(firstDirectorys == null || firstDirectorys.size() == 0) {
			return null;
		}else {
			//创建一个存放只有一级类别和其下的视频的集合。
			List<FirstVideoVO> firstVideoVOs = new ArrayList<FirstVideoVO>();
			
			for (FirstDirectory firstDirectory : firstDirectorys) {//遍历这些一级类别
				int firstDirectoryId = firstDirectory.getFirstDirectoryId();//获取一级类别的id
				//通过一级类别id查询其下所有的视频。
				Page<VideoCourse> videoCourses = videoCourseMapper.selectAllVideoByFirst(firstDirectoryId);

				FirstVideoVO firstVideoVO = new FirstVideoVO(firstDirectory,videoCourses.getResult());//将这个类别以及其下的视频放到这个实体类中
				
				firstVideoVOs.add(firstVideoVO);//将firstVideoVO这个实体类放到集合中。
			}
			
			return firstVideoVOs;
		}
		
	}
	
	
	
	
	
	
	

}




























